package _base0;

/**
 * 231. 2 的幂
 */
public class No231 {
    /**
     * 1.迭代
     */
    public boolean isPowerOfTwo1(int n) {
        if (n <= 0) return false;
        while (n % 2 == 0) {
            n /= 2;
        }
        return n == 1;
    }

    /**
     * 2.位运算（减一后与）
     */
    public boolean isPowerOfTwo2(int n) {
        return n > 0 && (n & (n - 1)) == 0;
    }

    /**
     * 3.位运算（取反加一后与）
     */
    public boolean isPowerOfTwo3(int n) {
        return n > 0 && (n & -n) == n;
    }
}
